﻿using System;
using System.Collections.Generic;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x0200034C RID: 844
	public class TSetSqlNode : TParseTreeNode
	{
		// Token: 0x17000737 RID: 1847
		// (get) Token: 0x060022D2 RID: 8914 RVA: 0x00335691 File Offset: 0x00333891
		// (set) Token: 0x060022D3 RID: 8915 RVA: 0x00335699 File Offset: 0x00333899
		public TObjectNameList VariableNameList
		{
			get
			{
				return this._variableNameList;
			}
			set
			{
				this._variableNameList = value;
			}
		}

		// Token: 0x17000738 RID: 1848
		// (get) Token: 0x060022D4 RID: 8916 RVA: 0x003356A2 File Offset: 0x003338A2
		// (set) Token: 0x060022D5 RID: 8917 RVA: 0x003356AA File Offset: 0x003338AA
		public TObjectName VariableName
		{
			get
			{
				return this._variableName;
			}
			set
			{
				this._variableName = value;
			}
		}

		// Token: 0x17000739 RID: 1849
		// (get) Token: 0x060022D6 RID: 8918 RVA: 0x003356B3 File Offset: 0x003338B3
		// (set) Token: 0x060022D7 RID: 8919 RVA: 0x003356BB File Offset: 0x003338BB
		public TObjectNameList objectNameList
		{
			get
			{
				return this._variableNameList;
			}
			set
			{
				this._variableNameList = value;
			}
		}

		// Token: 0x1700073A RID: 1850
		// (get) Token: 0x060022D8 RID: 8920 RVA: 0x003356C4 File Offset: 0x003338C4
		public virtual List<TSetAssignment> Assignments
		{
			get
			{
				return this.assignments;
			}
		}

		// Token: 0x1700073B RID: 1851
		// (get) Token: 0x060022D9 RID: 8921 RVA: 0x003356CC File Offset: 0x003338CC
		// (set) Token: 0x060022DA RID: 8922 RVA: 0x003356D4 File Offset: 0x003338D4
		public TExpression VariableValue
		{
			get
			{
				return this._variableValue;
			}
			set
			{
				this._variableValue = value;
			}
		}

		// Token: 0x1700073C RID: 1852
		// (get) Token: 0x060022DB RID: 8923 RVA: 0x003356DD File Offset: 0x003338DD
		// (set) Token: 0x060022DC RID: 8924 RVA: 0x003356E5 File Offset: 0x003338E5
		public TExpressionList VariableValueList
		{
			get
			{
				return this._variableValueList;
			}
			set
			{
				this._variableValueList = value;
			}
		}

		// Token: 0x1700073D RID: 1853
		// (get) Token: 0x060022DD RID: 8925 RVA: 0x003356EE File Offset: 0x003338EE
		public virtual ESetStatementType SetStatementType
		{
			get
			{
				return this.setStatementType;
			}
		}

		// Token: 0x060022DE RID: 8926 RVA: 0x003356F6 File Offset: 0x003338F6
		public override void init(object arg1)
		{
			this.setStatementType = (ESetStatementType)arg1;
		}

		// Token: 0x060022DF RID: 8927 RVA: 0x00335704 File Offset: 0x00333904
		public override void init(object arg1, object arg2)
		{
			this.init(arg1);
			switch (this.setStatementType)
			{
			case ESetStatementType.variable:
				this.assignments = (List<TSetAssignment>)arg2;
				return;
			case ESetStatementType.character_set:
			case ESetStatementType.names:
				this.characterSetName = (TObjectName)arg2;
				return;
			case ESetStatementType.password:
				this.userName = (TObjectName)arg2;
				return;
			case ESetStatementType.transaction:
				this.isolationLevel = (ETransactionIsolationLevel)arg2;
				return;
			default:
				return;
			}
		}

		// Token: 0x1700073E RID: 1854
		// (get) Token: 0x060022E0 RID: 8928 RVA: 0x0033576D File Offset: 0x0033396D
		public virtual TObjectName CharacterSetName
		{
			get
			{
				return this.characterSetName;
			}
		}

		// Token: 0x1700073F RID: 1855
		// (get) Token: 0x060022E1 RID: 8929 RVA: 0x00335775 File Offset: 0x00333975
		public virtual TObjectName CollationName
		{
			get
			{
				return this.collationName;
			}
		}

		// Token: 0x17000740 RID: 1856
		// (get) Token: 0x060022E2 RID: 8930 RVA: 0x0033577D File Offset: 0x0033397D
		public virtual ETransactionIsolationLevel IsolationLevel
		{
			get
			{
				return this.isolationLevel;
			}
		}

		// Token: 0x17000741 RID: 1857
		// (get) Token: 0x060022E3 RID: 8931 RVA: 0x00335785 File Offset: 0x00333985
		public virtual TObjectName Password
		{
			get
			{
				return this.password;
			}
		}

		// Token: 0x17000742 RID: 1858
		// (get) Token: 0x060022E4 RID: 8932 RVA: 0x0033578D File Offset: 0x0033398D
		public virtual TObjectName UserName
		{
			get
			{
				return this.userName;
			}
		}

		// Token: 0x060022E5 RID: 8933 RVA: 0x00335798 File Offset: 0x00333998
		public override void init(object arg1, object arg2, object arg3)
		{
			this.init(arg1, arg2);
			ESetStatementType esetStatementType = this.setStatementType;
			if (esetStatementType == ESetStatementType.names)
			{
				this.collationName = (TObjectName)arg3;
				return;
			}
			if (esetStatementType != ESetStatementType.password)
			{
				return;
			}
			this.password = (TObjectName)arg3;
		}

		// Token: 0x04001B14 RID: 6932
		private TObjectName _variableName;

		// Token: 0x04001B15 RID: 6933
		private TObjectNameList _variableNameList;

		// Token: 0x04001B16 RID: 6934
		private TExpression _variableValue;

		// Token: 0x04001B17 RID: 6935
		private TExpressionList _variableValueList;

		// Token: 0x04001B18 RID: 6936
		private List<TSetAssignment> assignments;

		// Token: 0x04001B19 RID: 6937
		private ESetStatementType setStatementType;

		// Token: 0x04001B1A RID: 6938
		private TObjectName characterSetName;

		// Token: 0x04001B1B RID: 6939
		private TObjectName collationName;

		// Token: 0x04001B1C RID: 6940
		private TObjectName userName;

		// Token: 0x04001B1D RID: 6941
		private TObjectName password;

		// Token: 0x04001B1E RID: 6942
		private ETransactionIsolationLevel isolationLevel;
	}
}
